
#if _MSC_VER > 1000
#pragma once
#endif

#ifndef __UFFS_STRENUMERATOR_H_
#define __UFFS_STRENUMERATOR_H_

#define _NO_CUFFSSTRENUMERATOR_CLASSOBJECT_

#include "_CUffsStrEnumerator.h"
#include "uffs\uffs_fs.h"

CarClass(CUffsStrEnumerator)
{
public:
    CUffsStrEnumerator();
    ~CUffsStrEnumerator();

    ECode Initialize(uffs_Object *f);

    ECode UnInit();

    CARAPI Current(
        /* [out] */ WStringBuf *buffer);

    CARAPI MoveNext();

    CARAPI Reset();

private:
    uffs_FindInfo  m_findInfo;
    char           m_szCurName[MAX_FILENAME_LENGTH*2];
    Boolean        m_bInit;
};

inline CUffsStrEnumerator::CUffsStrEnumerator()
{
    memset(&m_findInfo, 0, sizeof(uffs_FindInfo));
    m_szCurName[0] = '\0';
    m_bInit = FALSE;
}

inline CUffsStrEnumerator::~CUffsStrEnumerator()
{
    UnInit();
}

#endif //__UFFS_STRENUMERATOR_H_
